package fr.bugtracker.service.administration.utilisateur;

import java.util.List;

import javax.ejb.EJB;
import javax.ejb.Stateless;

import fr.bugtracker.dao.technique.DaoUtilisateur;
import fr.bugtracker.entity.technique.Utilisateur;
import fr.bugtracker.service.AbstractService;

/**
 * @author Laurent
 * @version 0.1
 */
@Stateless
public class SrvValiderCompteEnAttente extends AbstractService {

	/**
	 * fr.bugtracker.dao des utilisateurs
	 */
	@EJB
	private DaoUtilisateur daoUtilisateur;

	/**
	 * Constructeur de la classe <code>SrvValiderCompteEnAttente</code>.
	 */
	public SrvValiderCompteEnAttente() {
	}

	/**
	 * Retourne la liste des utilisateurs dont le compte est en attente de validation
	 * @return {@link List}< {@link Utilisateur} >
	 */
	public List<Utilisateur> getAllUtilisateurValidationCompteEnAttente() {
		return daoUtilisateur.getAllUtilisateurValidationCompteEnAttente();
	}

	/**
	 * Valide les comptes des utilisateurs sélectionnés
	 * @param pListeUtilisateur {@link List}< {@link Utilisateur} >
	 */
	public void validerComptes(List<Utilisateur> pListeUtilisateur) {
		for (Utilisateur utilisateur : pListeUtilisateur) {
			daoUtilisateur.find(utilisateur.getId());
			utilisateur.setEnAttenteValidation(false);
			utilisateur.setEnabled(true);
			//TODO : Envoyer un e-mail aux utilisateurs dont le compte a été validé
		}
	}

	/**
	 * Annule les comptes des utilisateurs sélectionnés
	 * @param pListeUtilisateur {@link List}< {@link Utilisateur} >
	 */
	public void annulerComptes(List<Utilisateur> pListeUtilisateur) {
		for (Utilisateur utilisateur : pListeUtilisateur) {
			daoUtilisateur.remove(utilisateur);
			//TODO : Envoyer un e-mail aux utilisateurs dont le compte a été annulé
		}
	}

}
